#include "cpu/exec/template-start.h"

#define instr jmp

static void do_execute() {
	cpu.eip += op_src->val;
	print_asm(str(instr) " %x", cpu.eip + 1 + DATA_BYTE);
}

make_instr_helper(si)
#if DATA_BYTE == 4
make_helper(jmp_rm_l) {
	int len = decode_rm_l(eip + 1);
	cpu.eip = op_src->val - (len + 1);
	print_asm(str(instr) " *%s", op_src->str);
	return len + 1;
}
#endif

// static void do_execute() {
//     DATA_TYPE_S imm = op_src->val;
//     if( op_src->type == OP_TYPE_IMM ){
//         //是立即数的时候
//         cpu.eip += imm;
//         print_asm("jmp %x",cpu.eip + DATA_BYTE+1);
//     }
//     else {
//         // printf("imm:%x\t", imm);
//         // 通过上面的printf可以推断，似乎imm直接就是要Jum的地址，所以下面要减去该指令的长度
//         cpu.eip = imm - (concat (decode_rm_,SUFFIX)(cpu.eip+1) + 1);
// 		print_asm_template1();
//     }
// }

// make_instr_helper(si)
// make_instr_helper(rm)


#include "cpu/exec/template-end.h"
